查看原文
其他

原来用pyecharts画个时间线图这么简单

luanhz 小数志 2022-07-01

导读

可视化对于数据分析师的工作重要性不言而喻。在Python众多可视化库中,matplotlib+seaborn+pyecharts是个人常用的组合。今天,就简单分享一个用pyecharts制作时间线图的例子,实现非常简单,效果却很强大。



pyecharts是python对百度开源echarts框架的一个封装,接口丰富、设置多样、图表可交互。需要指出的是,pyecharts从0.5版本升级到1.0版本后,接口调用形式发生很大变化,一度令人感到陌生,但实际上只是传参方式有些不同而已。


在pyecharts绘制基本图表的基础上,当为了体现指标随时间的变化趋势时,时间线图表是一个理想的选择。而绘制时间线图实际上非常简单,仅需三步即可:

  • 生成时间线对象

  • 创建基本图表对象

  • 将基本图表对象加入到时间线

某种意义上讲,时间线可理解为基本图表的一个容器,且其接口风格与基本图表很是相近。


举个例子感受下:
1from pyecharts.charts import Pie, Timeline
2from pyecharts import options as opts
3
4datas = {
5    220:[('魏'50), ('蜀'15), ('吴'35)],
6    230:[('魏'60), ('蜀'20), ('吴'20)],
7    240:[('魏'40), ('蜀'30), ('吴'30)],
8    250:[('魏'35), ('蜀'40), ('吴'25)],
9    260:[('魏'50), ('蜀'20), ('吴'30)],
10    270:[('魏'60), ('蜀'15), ('吴'25)],
11    280:[('魏'80), ('蜀'10), ('吴'10)]
12}
13
14# 1.创建时间线对象
15tl = Timeline()
16for year, data in datas.items():
17    # 2.创建单个子图对象
18    pie = Pie().add(year, data)
19    # 3.将子图对象添加到时间线
20    tl.add(pie, year)
21
22tl.render('三国势力历年变化.html')


三国势力历年变化趋势(数据纯属虚构)


虽然叫"时间线",但"时间轴"可以是任何系列数据,绘制方法还是一样的套路:
1from pyecharts.charts import Timeline, Radar
2from pyecharts import options as opts
3
4datas = {
5    '关羽' : [[54.84.44.74.9]],
6    '张飞' : [[54.64.74.64.8]],
7    '赵云' : [[54.84.74.94.7]],
8    '马超' : [[4.34.54.64.74.7]],
9    '黄忠' : [[4.54.54.54.64.7]]
10}
11tl = Timeline()
12schema = [opts.RadarIndicatorItem(name=name, max_=5for name in ('忠''义''礼''智''信')]
13for hero, data in datas.items():
14    radar = Radar().add_schema(schema=schema).add(hero, data)
15    tl.add(radar, hero)
16tl.render('五虎上将能力对比.html')


蜀国五虎上将能力对比(数据纯属虚构)



如此操作简单而又颇具实效的时间线图,叫人怎能不为之拍手称快?




相关阅读:


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存